#include "consolaFS.h"


void consola (void)
{
	int tam=(FAT32.cantidadSectores - FAT32.sectoresReservados-(2*FAT32.sectoresPorFAT))/FAT32.sectoresPorCluster;
	char comando[50+1];
	char* direccion;
	listaClusters* listaC;
	datosArchivo*data;
	do {
		printf("Ingrese pedido: ");
		gets(comando);

		if(strcmp(comando,"fsinfo") == 0) {
			down(mutexFAT);
			printf(	"Cantidad clusters ocupados:%i \n"
					"Cantidad clusters libres: %i \n"
					"Tamanio del sector (bytes): %i\n"
					"Tamanio del clusters: %i\n"
					"Tamanio de la FAT: %i\n",
					(tam-numClustersLibres),
					numClustersLibres,
					FAT32.tamanioSector,
					FAT32.tamanioSector*FAT32.sectoresPorCluster,
					(FAT32.sectoresPorFAT*FAT32.tamanioSector));
			up(mutexFAT);
		}

		if((strncmp(comando,"finfo [",7) == 0) && (strchr(comando,']') != NULL ) ) {
			data = malloc(sizeof(datosArchivo));
			listaC = malloc(sizeof(listaClusters));
			direccion = malloc(strlen(comando)*sizeof(char));
			memcpy(direccion,comando+7,strlen(comando)-8); /*ese +- 7 es por "FINFO " ocupa 7 espacios y el 8 para que elimine el ] de mas */
			printf("%s\n",direccion);
			buscarArchivo(direccion,data);
			conseguirCadenaClusters(listaC,data->numCluster);
			int i;
			for(i=0;i<20 || listaC == NULL ;i++){
			 	 printf("%i\t",listaC->numCluster);
			 	 listaC = listaC->sig;
			 }

			free(data);
			free(listaC);
			free(direccion);
		}

	} while (strcmp(comando,"exit") != 0);
}

